<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use App\Models\User;

class UsersController extends Controller
{
    //


//注册页面
public function create() {
return view('users.create');
}




//展示用户页面
public function show($id) {


 $user = User::findOrFail($id);
 // 在使用 findOrFail 对用户对象进行查找时，如果查询失败则将返回错误信息。在这里，当 findOrFail 查询失败时，返回的是一个 404 响应页面

 //echo  '用户名信息:' . $user->name;
//compact只接送变量名数组或字符串变量名
 return view('users.show', compact('user'));

}


//用户注册保存用户
public function store(Request $request) {

/*
用户数据验证
*/
$this->validate($request, [
            // 必填, 最小长度和最大长度
           'name' => 'required|min:3|max:50',

           /*
           'email' => 'email' 表示使用email的正则去验证 , unique:users表示
           在users表里是唯一的,当然创建model的时候已经指明唯一性
           */
           'email' => 'required|email|unique:users|max:255',

           //confirmed 会寻找表单里password_confirmation的字段
           'password' => 'required|confirmed'
       ]);

//---------创建用户------------
$user = User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password),
          ]);



//使用session的闪存方法记录一对key-value的值, 之后通过session()->get('success')
/*

1.调用flash()后在下一次调用对应的key的时候,key将会被删除;
2.产生的文件将会存在 app/storage/session文件夹下;(不同版本路径不一样)
3. session会在加载完controller或view后才会保存,如果调试使用exit(),session很可能不会被保存,要手动调用session的save();
4. session()->put('success', '欢迎，您将在这里开启一段新的旅程~')将会在session不过期的情况下持久保存;
*/
session()->flash('success', '欢迎，您将在这里开启一段新的旅程~');



//--------重定向到个人页面,以下三种写法都可以,都会转成数组------
//$url = route('users.show', $user); 这种写法重定向的时候地址前面会多出来一个$

return redirect() -> route('users.show', [$user]); // action('UsersController@show',[$user]);


/*

return redirect() -> action('UsersController@show',[$user]);//需要在路由文件那里注册 UsersController@show的路由

//-以下三种写法都可以,都会转成数组------
return redirect()->route('users.show', [$user]);
return redirect()->route('users.show', $user);
return redirect()->route('users.show', ['id' => $user->id]);
*/
}





/*

----------测试--------------

*/



//测试传值
public function show3($name) {

echo  '用户名信息:';
var_dump($name);

}



//测试传值
public function showTest($name,$id) {

echo  '用户名信息:' . $id . $name ;

}


//测试, users/test?name=hament
public function routetest(Request $request) {


//echo 'dsds';
 echo 'username:' . $request->name ;

}


}
